Private Sub Put$Controller$ (id As Long)
	' #Version = v2
	' #Desc = Update $Controller$ by id
	' #Body = {<br>&nbsp;"cat_id": category_id,<br>&nbsp;"name": "$column$"<br>}
	' #Elements = [":id"]

	Dim data As Map = WebApiUtils.RequestData(Request)
	If Not(data.IsInitialized) Then
		HRM.ResponseCode = 400
		HRM.ResponseError = "Invalid json object"
		ReturnApiResponse
		Return
	End If

	' Make it compatible with Web API Client v1
	If data.ContainsKey("cat_id") Then
		data.Put("category_id", data.Get("cat_id"))
		data.Remove("cat_id")
	End If	
	If data.ContainsKey("name") Then
		data.Put("$column$", data.Get("name"))
		data.Remove("name")
	End If

	' Check conflict $column$
	DB.Table = "$table$"
	DB.Where = Array("$column$ = ?", "id <> ?")
	DB.Parameters = Array As String(data.Get("$column$"), id)
	DB.Query
	If DB.Found Then
		HRM.ResponseCode = 409
		HRM.ResponseError = "$Controller$ already exist"
		DB.Close
		ReturnApiResponse
		Return
	End If
	
	DB.Find(id)
	If Not(DB.Found) Then
		HRM.ResponseCode = 404
		HRM.ResponseError = "$Controller$ not found"
		DB.Close
		ReturnApiResponse
		Return
	End If
						
	Dim Columns As List
	Columns.Initialize
	Dim Values As List
	Values.Initialize
	For Each key As String In data.Keys
		Select key
			Case "category_id", "$column$", "modified_date"
				Columns.Add(key)
				Values.Add(data.Get(key))
		End Select
	Next

	DB.Reset
	DB.Columns = Columns
	DB.Parameters = Values
	If Not(data.ContainsKey("modified_date")) Then
		DB.UpdateModifiedDate = True
	End If
	DB.Id = id
	DB.Save

	HRM.ResponseCode = 200
	HRM.ResponseMessage = "$Controller$ updated successfully"
	HRM.ResponseObject = DB.First
	DB.Close
	ReturnApiResponse
End Sub